Панель «Репозитории Git»
Панель Репозитории Git — это главный инструмент, который позволяет управлять одновременно несколькими репозиториями.

Эта панель входит в стандартный состав перспективы Git.
1C:EDT заполняет эту панель автоматически, например при клонировании репозиториев. Также вы можете вручную добавить нужные вам репозитории в эту панель.
Структура информации
Список репозиториев имеет иерархическую структуру. Обычно на первом уровне находятся репозитории. Текст рядом с картинкой содержит имя репозитория и путь к нему в файловой системе.
Внутри репозитория содержится несколько узлов. Например, это узлы Ветки и Метки, содержащие в себе все ветки и все метки, которые есть в репозитории.
Для лучшей читаемости ветки организованы в два узла: для локальных и для удаленных веток. Отображаются только сокращенные имена веток, например:
- В узле Локально вместо refs/heads/master отображается master;
- В узле Удаленное отслеживание вместо refs/remotes/origin/master отображается origin/master.
Аналогичным образом в узле Метки имена сокращаются за счет исключения префикса refs/tags/.
Узел Ссылки содержит остальные ссылки, которые не являются ветками или метками. Например, это такие часто используемые ссылки как HEAD и FETCH_HEAD.
Узел Рабочий каталог содержит каталог файловой системы, в котором находится разрабатываемое приложение.
Узел Удаленные репозитории позволяет просматривать и изменять настройки удаленных репозиториев, которые используются для получения и отправки изменений.
Репозитории можно объединять в группы.
Условные обозначения
— группа репозиториев, узел
Ссылки или рабочий каталог;
— репозиторий, подмодуль или узел Удаленные
репозитории;
— ветка или группа
Ветки;
— текущая ветка (ветка,
извлеченная в рабочий каталог);
— метка или группа
Метки;
— ссылка;
— ссылка, извлеченная в
рабочий каталог;
— удаленный репозиторий;
— настройка получения из
удаленного репозитория;
— настройка отправки в удаленный
репозиторий;
— узел
Подмодули.
Командная панель
(Добавить существующий локальный репозиторий Git) — добавляет существующий локальный репозиторий Git в панель Репозитории Git;
(Клонировать репозиторий Git) — полностью копирует исходный
репозиторий, включая всю его историю. Для каждой локальной ветки клона автоматически
создается удаленная ветка для отправки изменений в исходный репозиторий и получения
изменений из него;
(Создать новый репозиторий Git) — создает
новый локальный репозиторий;
(Обновить) — панель обновляется автоматически с некоторым интервалом. Эта команда позволяет обновить панель вручную, не дожидаясь автоматического обновления;
(Связать с редактором) — связывает панель с редактором таким образом, что они начинают работать синхронно. В панели автоматически выделяется тот элемент, который редактируется;
(Иерархическое отображение ветки) —
включает и
выключает иерархический показ веток в виде вложенных папок;
(Отображать последние коммиты ветки)
— включает и
выключает отображение последнего коммита ветки в конце ее имени;
(Показать меню) — открывает выпадающее меню, в котором содержатся дополнительные команды для панели;- Добавить репозиторий... — добавляет существующий локальный репозиторий Git в панель Репозитории Git;
- Клонировать репозиторий... — полностью копирует исходный репозиторий, включая всю его историю. Для каждой локальной ветки клона автоматически создается удаленная ветка для отправки изменений в исходный репозиторий и получения изменений из него;
- Создать репозиторий... — создает новый локальный репозиторий;
- Создать группу репозиториев — создает группу репозиториев;
- Вставить путь к репозиторию или URI — добавляет в панель существующий репозиторий по пути, содержащемуся в буфере обмена;
- Обновить — панель обновляется автоматически с некоторым интервалом. Эта команда позволяет обновить панель вручную, не дожидаясь автоматического обновления;
- Связать с редактором — связывает панель с редактором таким образом, что они начинают работать синхронно. В панели автоматически выделяется тот элемент, который редактируется;
- Иерархическое представление веток — включает и выключает иерархический показ веток в виде вложенных папок;
- Показывать последний коммит ветки — включает и выключает отображение последнего коммита ветки в конце ее имени;
Контекстное меню репозитория
- Переключить на — переключает проект на другую ветку. Во вложенном меню для выбора предлагаются локальные ветки текущего репозитория, а также создание новой ветки и выбор из других элементов репозитория (ветки удаленного отслеживания, метки и др.);
- Фиксировать (commit)... — открывает панель Индексирование Git для фиксации изменений проекта в локальном репозитории;
- Спрятанные изменения (stash) — подменю содержит следующие команды:
- Спрятать изменения... — запоминает текущие изменения, незафиксированные в локальном хранилище, и временно откладывает их, возвращая проект к состоянию, зафиксированному в локальном хранилище;
- № <название отложенных изменений> — возвращает изменения, отложенные ранее, в рабочий каталог проекта;
- Отправить в Upstream — отправляет изменения в удаленный репозиторий с именем origin;
- Получить из Upstream — получает изменения из удаленного репозитория с именем origin;
- Отправить ветку 'имя ветки'... — отправляет выбранную ветку в удаленный репозиторий. При этом можно выбрать репозиторий или создать новый, выбрать отправляемую ветку, а также настроить для нее конфигурации отправки и получения изменений из удаленного репозитория;
- Получить и слить (pull) — получает изменения из исходного репозитория и вливает их в текущую ветку;
- Получить и слить (pull)... — получает изменения из выбранного удаленного репозитория и вливает их в текущую ветку;
- Удаленный репозиторий — подменю содержит следующие команды:
- Отправить (push)... — отправляет изменения в выбранный удаленный репозиторий;
- Отправить метки (push)... — отправляет выбранные метки в удаленный репозиторий;
- Получить (fetch)... — получает изменения из выбранного удаленного репозитория;
- Слить (merge)... — вливает выбранную ветку в текущую ветку;
- Перебазировать (rebase)... — переносит изменения текущей ветки в выбранную ветку;
- Сбросить (reset)... — отменяет изменения, выполненные в рабочем каталоге;
- Импортировать проекты... — импортирует проекты из файловой системы или архива;
- Переименовать ветку... — переименовывает ветку;
- Группы репозиториев —
подменю содержит следующие команды:
- Create Repository Group — создает группу репозиториев;
- Remove from Repository Group — возвращает репозиторий на верхний уровень;
- Move to 'имя группы' — перемещает репозиторий в группу;
- Включить LFS (в локальном репозитории) — не используется при разработке приложений «1С:Предприятия». Про настройку LFS читайте здесь;
- Показать в системном проводнике — открывает ресурс в системном проводнике;
- Показать в — подменю содержит следующие команды:
- История — показывает коммиты репозитория в панели История;
- Индексирование Git — показывает изменения репозитория в панели Индексирование Git;
- Журнал ссылок Git — показывает ссылки репозитория в панели Журнал ссылок Git;
- Свойства — показывает конфигурацию репозитория в панели Свойства. Доступен только просмотр значений;
- Очистить рабочий каталог (git clean)... — удаляет из рабочего каталога файлы и папки, которые не находятся под версионным контролем;
- Собрать мусор (git gc) — выполняет ряд задач по обслуживанию текущего репозитория, таких как сжатие ревизий файлов (для уменьшения дискового пространства и повышения производительности), удаление недоступных объектов, которые могли быть созданы в результате предыдущих фиксаций, упаковка ссылок, сокращение журнала ссылок и др. Эту команду можно использовать, например, для однократной оптимизации и очистки репозитория после неоптимального массового импорта;
- Удалить репозиторий из панели — исключает репозиторий из списка;
- Удалить репозиторий... — удаляет репозиторий;
- Добавить подмодуль... — добавляет в репозиторий новый подмодуль;
- Скопировать путь в буфер обмена — копирует полный путь к этому ресурсу в буфер обмена;
- Свойства — открывает конфигурацию репозитория в панели Свойства. Доступно изменение значений;
Контекстное меню удаленного репозитория
- Создать удаленный репозиторий... — создает удаленный репозиторий;
- Отправить (push) — отправляет изменения в этот удаленный репозиторий;
- Получить (fetch) — получает изменения из этого удаленного репозитория;
- Настроить получение... — позволяет настроить параметры получения из удаленного репозитория;
- Настроить отправку... — позволяет настроить параметры отправки в удаленный репозиторий;
- Удалить удаленный репозиторий — исключает удаленный репозиторий из списка.
- Показать в — открывает удаленный репозиторий в панелях История или Свойства;
Контекстное меню группы репозиториев
- Переключить на — переключает проект на другую ветку. Во вложенном меню для выбора предлагаются локальные ветки текущего репозитория, а также создание новой ветки и выбор из других элементов репозитория (ветки удаленного отслеживания, метки и др.);
- Удалить группу — удаляет группу репозиториев;
- Переименовать группу — переименовывает группу репозиториев;
- Получить и слить (pull) — получает изменения из исходного репозитория и вливает их в текущую ветку;
- Добавить репозиторий... — добавляет существующий локальный репозиторий Git в панель Репозитории Git;
- Клонировать репозиторий... — полностью копирует исходный репозиторий, включая всю его историю. Для каждой локальной ветки клона автоматически создается удаленная ветка для отправки изменений в исходный репозиторий и получения изменений из него;
- Создать репозиторий... — создает новый локальный репозиторий;
- Вставить путь к репозиторию или URI — добавляет в панель существующий репозиторий по пути, содержащемуся в буфере обмена;
Контекстное меню ветки
- Извлечь — переключает проект на эту ветку;
- Отправить ветку... — отправляет выбранную ветку в удаленный репозиторий. При этом можно выбрать репозиторий или создать новый, выбрать отправляемую ветку, а также настроить для нее конфигурации отправки и получения изменений из удаленного репозитория;
- Создать ветку... — создает новую ветку средствами Git (без связи с информационной базой);
- Переименовать ветку... — переименовывает ветку;
- Настроить ветку... — изменяет конфигурацию исходного репозитория для ветки;
- Удалить ветку... — удаляет ветку стандартными средствами Git;
- Синхронизировать с рабочим каталогом — синхронизирует ветку с рабочим каталогом;
- Сравнить с рабочим деревом — Не используется при разработке приложений «1С:Предприятия». Сравнивает ветку с рабочим каталогом;
- Слить (merge) — вливает эту ветку в текущую ветку;
- Слить (merge)... — вливает выбранную ветку в текущую ветку;
- Перебазировать (rebase) — перебазирует изменения текущей ветки в эту ветку;
- Сбросить (reset)... — отменяет изменения, выполненные в рабочем каталоге;
- Мягко-soft (только HEAD) — указатель HEAD будет указывать на этот коммит, а индекс и рабочий каталог останутся без изменений;
- Средне-mixed (HEAD и индекс) — указатель HEAD будет указывать на этот коммит, индекс будет соответствовать этому коммиту, а рабочий каталог останется без изменений;
- Жестко-hard (HEAD, индекс и рабочий каталог) — указатель HEAD будет указывать на этот коммит, индекс и рабочий каталог будут соответствовать этому коммиту;
- Открыть коммит — открывает коммит в панели просмотра;
- Показать в — открывает ветку в панели Журнал ссылок Git, в панелях История или Свойства;
Контекстное меню двух выделенных веток
- Synchronize with Each Other — синхронизирует одну ветку с другой;
- Сравнить друг с другом — Не используется при разработке приложений «1С:Предприятия». Сравнивает ветки друг с другом;
- Compare with Each Other in Tree — Не используется при разработке приложений «1С:Предприятия». Сравнивает ветки в панели Сравнение в дереве Git;
- Show Unified Diff — сравнивает ветки с помощью команды git-diff. Результат выводится в текстовый файл;
- Open All in Commit Viewer — открывает выделенные коммиты в панели просмотра;
Контекстное меню метки
- Создать метку (tag)... — создает метку;
- Отправить метки (push)... — отправляет выбранные метки в удаленный репозиторий;
- Filter Tags... — позволяет показать в дереве только те метки, которые содержат введенную подстроку;
- Извлечь — переключает проект на эту ветку;
- Отправить метку... — отправляет метку в удаленный репозиторий;
- Создать ветку... — создает новую ветку средствами Git (без связи с информационной базой);
- Удалить метку (tag)... — удаляет метку;
- Синхронизировать с рабочим каталогом — синхронизирует ветку с рабочим каталогом;
- Сравнить с рабочим деревом — Не используется при разработке приложений «1С:Предприятия». Сравнивает ветку с рабочим каталогом;
- Слить (merge) — вливает эту ветку в текущую ветку;
- Сбросить (reset)... — отменяет изменения, выполненные в рабочем каталоге;
- Открыть коммит — открывает коммит в панели просмотра;
- Показать в — открывает ветку в панели Журнал ссылок Git, в панелях История или Свойства;
Контекстное меню узла «Подмодули»
- Добавить подмодуль... — добавляет в репозиторий новый подмодуль;
- Синхронизировать подмодуль — синхронизирует все подмодули, содержащиеся в репозитории;
- Обновить подмодуль — обновляет все подмодули, содержащиеся в репозитории;
Контекстное меню рабочего каталога
- Добавить в индекс — добавляет в индекс все изменения, выполненные в рабочем каталоге;
- Импортировать проекты... — импортирует проекты из файловой системы или архива;
- Показать в системном проводнике — открывает ресурс в системном проводнике;
- Очистить рабочий каталог (git clean)... — удаляет из рабочего каталога файлы и папки, которые не находятся под версионным контролем;
- Скопировать путь в буфер обмена — копирует полный путь к этому ресурсу в буфер обмена;
- Сравнить — подменю содержит следующие команды:
- HEAD-ревизия — Не используется при разработке приложений «1С:Предприятия». Сравнивает этот ресурс в рабочем каталоге и в последнем коммите;
- Ветка, метка или ссылка... — Не используется при разработке приложений «1С:Предприятия». Сравнивает рабочий каталог с выбранной веткой, меткой или ссылкой;
- Коммит... — Не используется при разработке приложений «1С:Предприятия». Сравнивает рабочий каталог с выбранным коммитом;
Работа со списком репозиториев
-
- Иерархическое представление веток

-
Ветки можно просматривать в виде линейного списка (стандартное представление) или в виде иерархического списка, состоящего из вложенных папок. Такое представление удобно использовать при большом количестве веток.
Чтобы включить иерархический показ веток, нажмите
(Иерархическое отображение ветки) в командной панели.
- Отображение последнего коммита ветки

-
Стандартно в конце имени ветки 1C:EDT показывает имя последнего коммита этой ветки, это стандартное поведение.
Чтобы отключить показ последнего коммита нажмите
(Отображать последние коммиты ветки) в командной панели.
- Группы репозиториев

-
Репозитории можно объединять в группы. Группа репозиториев является лишь способом их отображения в списке. Она не имеет физического воплощения в виде каталога на диске, перемещение репозитория из одной группы в другую не приводит к изменению его расположения на диске.
Вложенные группы репозиториев не поддерживаются.
- Создать группу репозиториев

- Создать группу репозиториев можно несколькими способами:
- В командной панели нажмите
(Показать меню) - Создать группу репозиториев; - В контекстном меню репозитория нажмите Группы репозиториев Create Repository Group.
- В командной панели нажмите
- Переместить репозиторий в группу

-
Переместить репозиторий в группу можно несколькими способами:
- Перетащите репозиторий в нужную группу;
- В контекстном меню репозитория нажмите Группы репозиториев Move to 'имя группы'.
- Создать группу репозиториев
- Иерархическое представление веток